package com.sniper.annotation;

import com.sniper.enums.FieldTypeEnum;

import java.lang.annotation.*;

/**
 * 字段解释
 * 一遍导出字段整理，或者导出数据字典
 *
 * @author suzhen
 * Created by suzhen on 2017/5/27.
 */
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD, ElementType.TYPE})
@Documented
public @interface FieldInfo {
    /**
     * 名字
     *
     * @return
     */
    String name() default "";

    /**
     * 必须
     *
     * @return
     */
    boolean require() default true;

    /**
     * 是否展示
     *
     * @return
     */
    boolean show() default true;

    /**
     * 长度daxiao
     *
     * @return
     */
    int size() default 0;

    /**
     * 值,默认值
     *
     * @return
     */
    String value() default "";

    /**
     * 描述
     *
     * @return
     */
    String desc() default "";

    /**
     * 时间格式
     *
     * @return
     */
    String dateFormat() default "";


    /**
     * 用于级联关系读取字段
     * 不能设置读取父级的私有字段
     *
     * @return
     */
    String bindFiled() default "";


    /**
     * 数据类型
     *
     * @return
     */
    FieldTypeEnum fileType() default FieldTypeEnum.VARCHAR;
}

